package AnaliseLexicaFinal.EstruturaDeDados;

public class Codigo {
	private String codigo;
	private int proxcaracter = 0;
	private int linhaatual = 0;
	
	public Codigo(String codigo){
		this.codigo = codigo;
	}
	
	public Caractere proxCaracter(){
		Caractere corrente = null;
		if(proxcaracter < codigo.length()){
			corrente = new Caractere(codigo.charAt(proxcaracter), linhaatual);
			if (codigo.charAt(proxcaracter) == '\n') {
	            linhaatual++;
	        }
			proxcaracter++;
		}
		return corrente;
	}
	
	public boolean retracao(){
		if (proxcaracter == 0)
			return false;
		else{
			if (codigo.charAt(proxcaracter-1) == '\n')
				linhaatual--;
			proxcaracter--;
			return true;
		}
	}
	
	public boolean existeCaractere(){
		if (proxcaracter < codigo.length())
			return true;
		return false;
	}
}
